1. Field of the Invention
The present invention relates to an improvement of a technology which processes information distributed on a network using an agent, more particularly to an improvement which enhances flexibility and safety of an operation of an agent.
2. Description of the Related Art
[Agent System]
With reference to technologies for processing information distributed on a computer network, an agent system has been heretofore familiar. An agent is a process unit concerning software, and operates autonomously in response to peripheral circumstances. The agent system is the one that performs processing such as information collections while moving on nodes configuring the network according to demand. Here, the node is a logical unit that configures the network. A plurality of nodes can exist on a single machine, or on a computer.
FIG. 15 is a functional block diagram showing an example of a configuration of an agent system, which has been proposed in Japanese Patent Application No. 7-176181 by the applicant of the present invention as an example of such agent systems. The agent system shown in FIG. 15 connects a plurality of nodes 800 with a network 800N, and in FIG. 15, only two nodes are illustrated, in spite of the fact that a plurality of nodes can be practically provided in the agent system. Among the nodes 800, the node used by the user for an agent generation is called a local node (800L), and the node to which the generated agent moves is called a remote node (800R).
In this agent system, each of the nodes 800 has input/output means 803 (L, R) which allows the user to perform an operation to generate the agent and receives the result of information processing by the agent. Agent management means 804 (L, R) of each node serves to generate an agent and erase an agent that fulfilled its duties. The means 804 (l, R) serves also to move the agent to the other nodes by transferring the information of the agent to other nodes and to accept an agent moved from other nodes. When the user wishes to perform some information processings using such agent system, he indicates the agent management means 804L in the local node 800L from the input/output means 804L to generate an agent.
The most fundamental example will be described below. The user gives a script from the input/output means 803L to the generated agent. The script is an action program of the agent. In the script, the action program concretely describes the contents indicating which node the agent moves to and what processing the agent performs. As a more concrete example of the script, for example, the contents are conceived, which expresses that the agent moves to the node A to transmit the copy of the file b to user's node, and then moves to the node B to transmit the copy of the file b to user's node, and so on. Interpretation execution means 802 (L, R) provided in each node executes such script to allow to the agent to act, thus realizing information processing to be objected.
In this case, agent information memory means 801(L, R) provided in each node stores information necessary for the agent. The information necessary for the agent is each variable (called a script variable) necessary for the interpretation execution of the script, information collected by the agent and files if necessary, in addition to the foregoing script. As instructions described in the script of the agent, there is a move instruction to move the agent to other nodes, as well as an instruction capable of being executed only one node. The interpretation execution means 802L sequentially executes the instructions of the script, and designates the node to which the agent moves when the agent is required to execute the move instruction, thereby making a request to the agent management means 804 for moving the agent.
In such agent system, when the user wishes to collect several files from the network, it is satisfactory that the user gives the action program to the agent and sends out onto the network. The agent which was sent out acts autonomously based on the presented script. For this reason, since it is unnecessary to keep communications between the user's node and the agent throughout, this agent system involves a merit that it exhibits a strong resistance to circuit troubles compared to conventional network functions such as “ftp” and “telnet”.
[Example of Configuration Using Planning]
For the agent system shown in FIG. 15, agent systems has been also familiar, which are capable of changing the script that is the action program of the agent depending on circumstances.
Specifically, networks have recently became large-scale and complicated, and, when particularly they become the open system network by connecting them with a wide area network like an internet, components of the network such as a file position come to change. However, in the foregoing agent system shown in FIG. 15, since a fixed script is given to the agent at the time when it is generated, the agent can not change its action depending on circumstances. Accordingly, to cope with such change flexibly, the applicant of the present invention filed the agent system which possesses a planning function as the technology that automatically changes the action of the agent without any human agency.
In this technology, the action program of the agent is called a plan, and generation of the plan is called a planning. This technology appropriately remakes the plan depending on circumstances, and copes with changes of components of the network. Noted that remaking of the planning in response to the changes of the components of the network is called a re-planning.
An example of a configuration of such agent system is shown in a functional block diagram of FIG. 16. In this technology, information used for the generation of the plan includes the information called “knowledge” and the action definition. The “knowledge” means an operation of the agent, particularly various kinds of information used for the planning. For example, the “knowledge” includes information relating to the components of the network, which, for example, indicates in which node files exist. In the example of the configuration of FIG. 16, the knowledge relating to the structure of the network is previously stored in the local information memory means 1L. When the structure of the network changes, the up-date means 2L reflects such change on the knowledge by an automatic detection, a manual operation or the like. Furthermore, the action definition means information indicating which kinds of instructions (action) can be used as parts for configuring the plan. The action definition is previously stored in the agent information memory means 3.
In such agent system, the user instructing the generation of the agent gives a goal to be achieved to the node, instead of the script. Here, the goal describes a situation to be achieved as an object of the information processing, according to a predetermined grammar. The plan generating means 5 combines various kinds of actions included in the action definition while referring to the presented knowledge, and generates the plan for achieving the goal. In such agent system, changes of the structure of the network is reflected on the plan of the agent through the knowledge at the time of the planning and the re-planning, so that the agent can cope with the change of circumstances without human agency and change its action flexibly.
Noted that means for generating such plan is called also “planner”, and its entity is a kind of program which expresses procedures of the planning. Furthermore, a wide sense concept naming the action program of the agent and each portion thereof is the script. The “plan” means the total of the script which was generated by the agent performing the planning shown in FIG. 16.
Subsequently, concrete operation procedures of the agent system using the foregoing planning are exemplified in FIG. 17. In these procedures, when the user inputs the description (demand description) which is demanded for the agent as a goal of the information processing (step 201), a necessary initialization is executed (step 202). Thereafter, the plan is generated (step 203). Noted that the processing is terminated according to the determination result relating to whether or not termination conditions such as an attainment to the goal was already achieved (steps 204 and 205).
Specifically, until such termination conditions are satisfied, the plan which requires the execution in order to achieve the goal is executed (step 204). In the execution of the plan, each instruction included in the plan is sequentially executed, and when an instruction to be executed is the move instruction, the processing to move the agent between nodes is executed (steps 206 to 208), which is called a “go” action. Moreover, when the execution of each instruction and the execution of the “go” action are unsuccessfully performed, a new plan is generated if necessary.
Here, in the action definition used for the generation of the plan, the preconditon and the ex post facto condition are defined every kind of the action (operation). The beforehand condition expresses the possibility of the agent's operation depending on what kinds of conditions are satisfied. The ex post facto condition expresses what kinds of conditions are produced with the execution of such agent's operation. For example, in order to execute the operation expressed by the sentence “copy the file”, the beforehand condition indicating “the file exists in the node where the agent exists” is necessary. As a result of the copying operation, the ex post facto condition indicating “the copying of the file exists” is produced.
The generation of the plan means the acquisition of operation string connecting between the situation before the execution of the plan (present situation) and the final goal by sequentially executing processings that an operation to produce the final goal as the ex post facto condition is found and then another operation to produce the beforehand condition of that operation as the ex post facto condition is found. Noted that FIG. 18 shows an example of the plan which is being generated. In this example, an operation to produce the beforehand condition C5 of the operation P2 and the beforehand condition C7 of the operation P3 as the ex post facto condition has not yet been found. As described above, a beforehand condition in which other operations to produce the beforehand condition as the postcondion has not yet been found is called a unachieved goal.
The processing of such plan is executed by going back to the cause from the goal, and terminated when the situation existing at the time of starting the plan execution (present situation) is attained. FIG. 19 is a flowchart of an example of the plan completed by such processings.
Subsequently, concrete procedures of the plan generation is shown in FIG. 20. Specifically, in these procedures a part of goal list which records the goal is set to the unachieved goal list which records the unachieved goal as shown in FIG. 18, and the following processing are executed. First, until the unachieved goal comes not to exist in the goal list (step 401), the unachieved goal is selected one by one from the unachieved goal list (step 402). Except the case where the goal is satisfied (step 403), the following operations are executed. Specifically, if an operation capable of, by the ex post facto condition, achieving the beforehand condition that is the goal exists (step 404), this operation is selected (step 405). The operation selected in such manners (selection operation) is added to the string of the operations (plan tree) shown in FIG. 19 (step 405).
Furthermore, when an operation capable of achieving the goal does not exist, it is determined whether or not the goal can be achieved by an uncertain knowledge. Here, the uncertain knowledge is the one the value of which can not be known as long as some processings are not executed in other nodes, among knowledge relating to the structure of the network. When the goal can be achieved by the uncertain knowledge, this uncertain knowledge is added to the plan tree as the selection operation (step 405). When the goal can not be achieved by the uncertain knowledge, the processing is made to backtrack (step 408), and the operation which is producing the present unachieved goal is replaced by another operation, so that the processing is executed again.
For example, based on the node knowledge for the node used by the user, it is assumed that “the file a exists in the node A”. In this case, when the user gives the goal to acquire the file a to the agent, since the knowledge indicating that file a exists in the node A is referred to, the plan of the agent generated has the content that “the agent moves to the node A and transmits the copy of the file a to the node of the user”.
However, if the file a is transmitted to the node B at the time the agent moves to the node A, the file a can not be found, so that the plan is executed unsuccessfully, thus the re-planning is executed on the node A. At this time, the node knowledge of the node B is updated in accordance with the move of the file. When the node knowledge is changed to “that file a exists in the node B”, a new plan is changed to the content that “the agent moves to the node B and transmits the copy of the file a to the node of the user”. As a result, the agent autonomously moves to the node B, and finds the file a well, so that the agent transmits it to the node of the user successfully.
Furthermore, procedures when the agent moves between nodes based on the plan generate in such manners are shown in FIG. 21. In this example, it is assumed that the agent moves from the local node where the user generates the agent to the remote node other than the local node. In this case, the move request is sent out from the local node (step 501) and the remote node accepts the move request (step 502) from the local node. The remote node which accepted the move request sets the process for the agent (step 503).
Subsequently, the remote node sends the notice indicating that the setting of the program has completed to the local node (step 504), and the local node accepts the notice from the remote node (step 505). The remote node transmits the agent information such as the plan of the agent and a variable area to the remote node (step 506). The remote node which accepted the agent information (step 507) store it (step 508), and transmits the notice of the successful move to the local node (step 509), and starts the interpretation execution of the plan (step 510). On the other hand, the local node accepts the notice of the successful move (step 511), and erases the process for the agent which became unnecessary (step 512).
[Lifecycle of the Agent]
Next, the conception view illustrating the lifecycle of the agent which executes the planning as described above is shown in FIG. 22. Specifically, the agent is generated at the time of goal installation, and starts the action. First, the agent starts to act from the planning phase P where the plan is generated. According to the plan generated, the agent moves to the execute phase E for executing the plan and to the move phase M for moving between the nodes. Depending on the execution of the plan and failure of the move, the agent acts while moving between the nodes. If the goal initially presented is achieved, the procedure goes to a normal termination. If the goal can not be achieved and the agent fails in planning itself, the procedure is terminated because of complete failure.
[Example Using Firm]
Furthermore, an agent system in which several areas called a firm are provided on one node may be conceived. Here, the firm is an action area of the agent which set depending on the object and field of the information processing. The firm is also called a field. A plurality of such firms (fields) are allowed to exist in one node, and information used for generation and execution of resources such as a memory and a plan is provided every firm (field).
FIG. 23 is a concept view illustrating an example in which a plurality of hosts H (machines) are connected to the network N, one node X exists on each host H, and a plurality of fields FL exist on the node X. In such agent system, the knowledge used for the generation of the plan is separated for each firm (field FL). Therefore, when the agent retrieves information necessary for the planning, it is unnecessary to refer to excessive information, so that information processing is executed with a high efficiency Noted that the knowledge used for the generation of the plan can be classified into a firm knowledge possessed by the firm, an agent knowledge possessed by the agent and the like, depending on an entity which possesses the knowledge.
However, the foregoing conventional technologies involve the following problems.
(1) First, the agent system generates the plan with reference to the action definition. The conventional action definition includes an action name, a beforehand condition, an action string and an ex post facto condition, which is expressed in the form of the following description.    action (action name,
[beforehand condition],
[action string],
[ex post facto condition]).
In the conventional action definition, when the action is executed in the plan, what kinds of operations are executed was concretely described in the items of the foregoing action string. For example, in the following conventional action definition,
    action(checkNode,    [target(Node),
nodeName(OriginNode)],    [goto(Node),
get(‘inform. dat’),
goto(OriginNode),
put(‘inform. dat’)],    [checkedNode(Node)].Concrete procedures corresponding to the action name that is “checked Node” is described in the underline portion Here, the portions other than the action string are information used for the generation of the plan. The action string is information used when the plan is executed.
As described above, the information used for the generation of the plan and the information used for executions mixedly existed in the action definition until now, the script was restricted to a language form of the action definition, and its description can not be done freely. Noted that here the script means the description of concrete operations configuring the plan. Particularly, the action definition was a language form for mentioning information concerning to necessary items, and is unsuitable for the description of operation procedures having a complex control structure. Moreover, since the information used for the generation of the plan and the information used for the execution mixedly existed, while involving unclear distinction of both information is unclear, operations to make them and to correct them were troublesome.
(2) Furthermore, the agent system operates while iterating the cycle that the planning is executed with referencing to the knowledge and then the plan is executed. The information acquired by the execution of the plan should be reflected on knowledge used for succeeding planning. In order to add the existing information by the information acquired by the execution of the plan and update the existing information, it was necessary to concretely describe the operations in the plan.
However, the plan itself that is an object of the execution, the knowledge used for the generation of the plan and the instruction for updating the knowledge have different purposes from each other. Since plural information having the different purposes mixedly existed in the plan, the information can not be separated, so that works to construct the operation (application) of the agent in accordance with the description and object of the operation has been troublesome and complicated.
(3) Furthermore, the agent system performs the re-planning if necessary. However, there has been no way other than the following two ways. One was that when the re-planning is performed and how the re-planning is performed are concretely described. And, the other is that the re-planning is exclusively entrusted to a standard (default) on the system. For this reason, the operation lacked flexibility, and it was difficult for the agent to flexibly cope with various kinds of circumstances.(4) Another problem in the conventional technologies described above is the one concerning security of the information. Specifically, the agent having moved may access illegally to various kinds of resources such as data files possessed by the node and the firm. The agent may also destroy and correct erroneously them. On the contrary, the node and the firm may access illegally to the internal data of the agent, or may destroy and erroneously correct it. For this reason, an agent system of a high safety having a security function was called for.
In addition, when the node and the firm do not fit up the knowledge base for the planning, the correct planning for achieving the object of the agent can not be necessarily generated on the node and the firm. Furthermore, the case where the execution of the plan is permitted and the planning is not permitted from view-point of circumstances such as limitations to security and resources may be conceived, depending on the node and the firm. In such case, it is necessary to execute the planning only on an appropriate node, and a technology concerning such control is required.
(5) Furthermore, since the agent continues to act while sequentially moving between the nodes on the network, when troubles such as a host down happen to occur in the node where the agent continues to act, also the action of the agent is interrupted. In such case, since the information of the agent extinguishes at the time of the occurrence of the trouble, it was impossible to continue the operation of the agent though the node could be resumed.
Furthermore, the user had no means having such functions to generate an agent in the node used by the user, verify a present position of the agent after sending out the agent, and verify whether or not the agent continues to act without troubles. For this reason, there has been a problem that the operation is delayed by waiting the return of the agent in spite of the extinction of the agent due to the occurrence of the trouble on the node. On the contrary, in spite of no extinction of the agent, because of a little delay of the return of the agent it is misunderstood that the agent extinguished due to some troubles. There has been a problem that the agent is sent out again, resulting in doubled labor.
Furthermore, also in the case where it is estimated that the agent extinguishes due to trouble of the node, there has been no means for resuming the operation of the agent. Therefore, it is required to regenerate the agent and the agent must resume its action from the beginning, and hence a duty of the network resource increases and the procedure is troublesome.